package bytes;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class BufferedOutputStreamTest {

	public static void main(String[] args) throws IOException {
		
		OutputStream output = new FileOutputStream( "buffered-output.txt" );
		
		BufferedOutputStream bufferedOutput = new BufferedOutputStream( output , 5 );
		
		bufferedOutput.write( 'A' );
		bufferedOutput.write( 66 );
		bufferedOutput.write( 'C' );
		bufferedOutput.write( 68 );
		bufferedOutput.write( '\n' );
		
		// 当缓冲区满了，就会将缓冲区中的字节写出到底层输出流
		
		bufferedOutput.write( 'a' );
		bufferedOutput.write( 98 );
		bufferedOutput.write( 'c' );
		bufferedOutput.write( 100 );
		bufferedOutput.write( '\n' );
		
		//迫使所有缓冲的输出字节被写出到底层输出流中
		// bufferedOutput.flush(); 
		// 就是将 缓冲区 ( buf ) 中的 有效字节 ( [ 0 , count ) 之间 ) 输出到 output 对应的流
		bufferedOutput.close(); // close 内部调用了 flush
		
		output.close();

	}

}
